package com.laikan.library.components.dialog;

import android.app.Dialog;
import android.content.Context;
import android.view.Display;
import android.view.Window;
import android.view.WindowManager;
import com.laikan.library.R;


/**
 * User: lizheng<br>
 * Date: 13-7-10<br>
 * Time: 上午10:28<br>
 * 一个默认弹框的实现,使用是可以通过调整layout，style。更改为适合各自项目的弹框
 */
public abstract class BaseDialog extends Dialog {

    /**
     * 用一个默认样式文件
     *
     * @param context C
     * @param layoutResId 布局文件
     */
    public BaseDialog(Context context, int layoutResId) {

        super(context, R.style.LaikanTheme_Dialog);

        init(layoutResId);
    }

    /**
     * @param context C
     * @param layoutResId 布局文件
     * @param styleId 样式文件
     */
    public BaseDialog(Context context, int layoutResId, int styleId) {
        super(context, styleId);
        init(layoutResId);
    }

    private void init(int layoutResId) {
        setContentView(layoutResId);
        setProperty();
        initView();
        initData();
        setListener();
    }

    private void setProperty() {
        Window window = getWindow();
        WindowManager.LayoutParams p = window.getAttributes();
        Display d = getWindow().getWindowManager().getDefaultDisplay();

        // d.getHeight()在API13以上为废弃方法。因此出现废弃警告可不予理会
        p.height = d.getHeight() * 1;
        p.width = d.getWidth() * 1;
        window.setAttributes(p);

    }

    protected abstract void initView();

    protected abstract void initData();

    protected abstract void setListener();
}
